package com.hjzd.ai.smartpractice.service;

import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;

/**
 * @author pengyonglei
 * @version 1.0.0
 */
public interface RedisService {

	String get(String key);

	/**
	 * 设置缓存对
	 * @param key
	 * @param value
	 * @param expire	超时时间, 单位是秒
	 */
	boolean set(String key, String value, int expire);

	/**
	 * 设置缓存对
	 *
	 * @param key
	 * @param value
	 * @param timeout 超时时间
	 * @param timeUnit 单位
	 */
	boolean set(String key, String value, long timeout, TimeUnit timeUnit);

	/**
	 * 删除单个key
	 * @param key
	 */
	boolean remove(String key);

	/**
	 * 获取匹配的key集合
	 * @param pattern
	 * @return
	 */
	Set<String> keys(String pattern);

	/**
	 * 添加一个值到set集合中
	 * @param key		set的key
	 * @param value		set的某个值
	 */
	boolean addValueToSet(String key, String value);

	/**
	 * 从set集合中移除元素值
	 * @param key		set的key
	 * @param value		被移除的值
	 */
	boolean removeValueFromSet(String key, String value);

	/**
	 * 获取一个set集合的所有值
	 * @param key	set的key
	 */
	Set<String> getValueSet(String key);

}
